package cn.bytengine.stem.contexts;

import java.util.Map;

/**
 * 不支持修改代理上下文，让可修改上下文对进行不可变包装
 */
public class ImmutableProxyContext extends ProxyContext {

    public ImmutableProxyContext(Context context) {
        super(context);
    }

    /**
     * 该方法不支持此操作，并抛出{@link UnsupportedOperationException}异常
     *
     * @param context 代理的上下文
     * @return 当前上下文实例
     */
    public ImmutableProxyContext setProxy(Context context) {
        throw new UnsupportedOperationException();
    }

    /**
     * 该方法不支持此操作，并抛出{@link UnsupportedOperationException}异常
     *
     * @param key   上下文对应数据的key
     * @param value 上下文对应key的数据
     * @return 当前上下文实例
     * @throws UnsupportedOperationException 不支持调用
     */
    @Override
    public ImmutableProxyContext set(String key, Object value) throws UnsupportedOperationException {
        throw new UnsupportedOperationException();
    }

    /**
     * 该方法不支持此操作，并抛出{@link UnsupportedOperationException}异常
     *
     * @param data 要设置的Map数据内容
     * @return 当前上下文实例
     * @throws UnsupportedOperationException 不支持调用
     */
    @Override
    public ImmutableProxyContext set(Map<String, Object> data) throws UnsupportedOperationException {
        throw new UnsupportedOperationException();
    }

    /**
     * 该方法不支持此操作，并抛出{@link UnsupportedOperationException}异常
     *
     * @param key 上下文对应数据的key
     * @return 当前上下文实例
     * @throws UnsupportedOperationException 不支持调用
     */
    @Override
    public ImmutableProxyContext remove(String key) throws UnsupportedOperationException {
        throw new UnsupportedOperationException();
    }
}
